/**
 * 工具类
 */

export const tools = {
  /**
   * 处理时间的方法
   * @param {*} data
   * @param {*} format
   * @returns
   */
  formate(data, format) {
    if (!data) {
      return ''
    }
    if (typeof data === 'string') {
      data = data.replace(/-/g, '/')
    }
    data = new Date(data)

    if (!format) {
      return data
    }

    const o = {
      'M+': data.getMonth() + 1, // month
      'd+': data.getDate(), // day
      'h+': data.getHours(), // hour
      'm+': data.getMinutes(), // minute
      's+': data.getSeconds(), // second
      'q+': Math.floor((data.getMonth() + 3) / 3), // quarter
      'S': data.getMilliseconds() // millisecond
    }
    if (/(y+)/.test(format)) {
      format = format.replace(RegExp.$1, (data.getFullYear() + '').substr(4 - RegExp.$1.length))
    }
    for (const k in o) {
      if (new RegExp('(' + k + ')').test(format)) {
        format = format.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length))
      }
    }
    return format
  },

  // 合并对象
  mergeObj(to, from) {
    if (from) {
      const keys = Object.keys(to)
      keys.forEach(key => {
        if (tools.isDef(from[key])) {
          to[key] = from[key]
        }
      })
    }
    return to
  }
}
